package cn.iocoder.yudao.module.wrzj.service.conversation;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.wrzj.controller.app.conversation.vo.AppConversationPageReqVO;
import cn.iocoder.yudao.module.wrzj.controller.app.conversation.vo.AppConversationSaveReqVO;
import cn.iocoder.yudao.module.wrzj.dal.dataobject.conversation.ConversationDO;
import com.alibaba.fastjson.JSONObject;

import javax.validation.Valid;

/**
 * chatbase会话记录 Service 接口
 *
 * @author 运掌科技
 */
public interface ConversationService {

    /**
     * 创建chatbase会话记录
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createConversation(@Valid AppConversationSaveReqVO createReqVO);

    /**
     * 更新chatbase会话记录
     *
     * @param updateReqVO 更新信息
     */
    void updateConversation(@Valid AppConversationSaveReqVO updateReqVO);

    /**
     * 删除chatbase会话记录
     *
     * @param id 编号
     */
    void deleteConversation(Integer id);

    /**
     * 获得chatbase会话记录
     *
     * @param id 编号
     * @return chatbase会话记录
     */
    ConversationDO getConversation(Integer id);

    /**
     * 获取助手最新的一条对话上下文信息
     * @param conversationId
     * @return
     */
    ConversationDO getLastedAssistantChat(String conversationId);

    /**
     * 获得chatbase会话记录分页
     *
     * @param pageReqVO 分页查询
     * @return chatbase会话记录分页
     */
    PageResult<ConversationDO> getConversationPage(AppConversationPageReqVO pageReqVO);

    JSONObject statisticsConversation(String conversationId);
}
